/* 基础样式 */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
html,
body {
  margin: 0;
  padding: 0;
}
body {
  font: 14px/1.5 tahoma, arial, 'Microsoft YaHei', sans-serif;
}
button,
input,
select,
textarea {
  font: inherit;
  margin: 0;
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
  cursor: pointer;
}
/* 对话框样式 */
.dialog-cover {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9000;
  width: 100%;
  height: 100%;
  background: #000;
  zoom: 1;
  opacity: 0.5;
}
.dialog {
  position: fixed;
  left: 50%;
  top: 50%;
  z-index: 9001;
  background: #fff;
  font-size: 14px;
  min-width: 400px;
}
.dialog-head {
  padding: 10px 20px;
  background: #e7ecf1;
  border-bottom: 1px solid #bdc6cf;
}
.dialog-title {
  color: #676f75;
  font-size: 16px;
}
.dialog-body {
  position: relative;
  padding: 20px;
  color: #333;
  background: #fff;
}
.dialog-foot {
  padding: 15px 20px;
  overflow: hidden;
  background: #e7ecf1;
  border-top: 1px solid #bdc6cf;
}
.dialog-close {
  position: absolute;
  top: 0;
  right: 10px;
  z-index: 90002;
  cursor: pointer;
  font-size: 24px;
  color: #888;
}
.dialog-btn-cancel,
.dialog-btn-ok {
  float: right;
  height: 30px;
  line-height: 30px;
  width: 100px;
  margin-left: 10px;
  text-align: center;
  cursor: pointer;
  border: 1px solid #bdc6cf;
  color: #676f75;
}
.dialog-btn-ok {
  background: -webkit-linear-gradient(top, #fff 0%, #e0e4e8 100%);
}
.dialog-btn-cancel {
  background: #fff;
}
/* 日期选择插件样式 */
.datepicker * {
  box-sizing: border-box;
  font-size: 14px;
}
.datepicker {
  position: absolute;
  top: 0;
  left: 0;
  display: none;
  padding: 10px;
  border: 1px solid #ccc;
  background: #fff;
  z-index: 9100;
}
.datepicker .top {
  text-align: center;
}
.datepicker .body {
  width: 100%;
  border-spacing: 0;
}
.datepicker .bottom {
  padding: 8px 0 5px;
  text-align: center;
}
.datepicker .cell {
  width: 40px;
  height: 36px;
  text-align: center;
  cursor: pointer;
}
.datepicker .cell.selected div,
.datepicker-select-options li.selected {
  color: #fff;
  background: #007fc3;
}
.datepicker .cell div {
  display: block;
  margin: 1px;
  width: 38px;
  height: 34px;
  line-height: 34px;
}
.datepicker .week-cell {
  height: 40px;
  border: 0;
  color: #888;
}
.datepicker .prev-month,
.datepicker .next-month {
  color: #c7c7c7;
}
.datepicker .curr-month {
  color: #333;
}
.datepicker .prev-month:hover div,
.datepicker .curr-month:hover div,
.datepicker .next-month:hover div {
  color: #fff;
  background: #007fc3;
}
.datepicker .btn-ok {
  display: inline-block;
  width: 80px;
  height: 30px;
  line-height: 30px;
  text-align: center;
  color: #fff;
  background: #007fc3;
  cursor: pointer;
}
.datepicker-select {
  position: relative;
  float: left;
  width: 50%;
}
.datepicker-select:after {
  position: absolute;
  top: 50%;
  right: 10px;
  width: 0;
  height: 0;
  margin-top: -2.5px;
  border-top: 5px solid #aaa;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  content: '';
}
.datepicker-select-selected {
  position: relative;
  width: 100%;
  height: 36px;
  padding-right: 20px;
  line-height: 36px;
  text-align: center;
  color: #333;
  border: 1px solid #ddd;
  cursor: pointer;
}
.datepicker-select-options {
  position: absolute;
  top: 35px;
  left: 0;
  display: none;
  width: 100%;
  max-height: 212px;
  overflow: auto;
  margin: 0;
  padding: 0;
  border: 1px solid #ddd;
  background: #fff;
  z-index: 9;
  box-shadow: 0 4px 8px #e5e5e5;
  -webkit-box-shadow: 0 4px 8px #e5e5e5;
}
.datepicker-select-options li {
  float: left;
  width: 50%;
  height: 30px;
  line-height: 30px;
  color: #777;
  font-size: 13px;
  text-align: center;
  list-style: none;
  cursor: pointer;
}
.datepicker-select-options li:hover {
  background: #eee;
}
.datepicker-select-month {
  margin-left: -1px;
}
/* 日历选择插件 */
.calendar {
  position: absolute;
  z-index: 8900;
  display: none;
  background: #fff;
  border: 1px solid #ccc;
  -webkit-box-shadow: 0 0 5px rgba(0,0,0,0.1);
  -moz-box-shadow: 0 0 5px rgba(0,0,0,0.1);
  -ms-box-shadow: 0 0 5px rgba(0,0,0,0.1);
  box-shadow: 0 0 5px rgba(0,0,0,0.1);
}
.calendar .calendar-type {
  position: relative;
  padding: 10px;
  overflow: hidden;
  background: #f1f3f6;
  border-bottom: 1px solid #ddd;
}
.calendar .calendar-type > div {
  float: left;
  width: 50px;
  height: 30px;
  margin-left: -1px;
  border: 1px solid #09c;
  text-align: center;
  line-height: 28px;
  background: #fff;
  color: #0188b5;
  cursor: pointer;
}
.calendar .calendar-type > div.active {
  color: #fff;
  background: #09c;
  cursor: default;
}
.calendar .calendar-type .calendar-close {
  position: absolute;
  right: 10px;
  top: 0;
  font-size: 24px;
  color: #09c;
  cursor: pointer;
  background: transparent;
  font-family: serif;
}
.calendar .calendar-type .calendar-close:hover {
  color: #f00;
}
.calendar .calendar-body table {
  width: 100%;
  border-spacing: 0;
}
.calendar .calendar-body table td {
  padding: 0;
  margin: 0;
  text-align: center;
}
.calendar .calendar-body table tbody td {
  cursor: default;
  border: 1px solid transparent;
}
.calendar .calendar-body table tbody .selected {
  background: #ccebf5;
  border: 1px solid #09c;
}
.calendar .calendar-body table tbody .disabled {
  background: #fff;
  opacity: 0.3;
  cursor: not-allowed;
}
.calendar .calendar-body td.calendar-combox-wrap {
  border: 0;
}
.calendar .calendar-body .calendar-D tbody td,
.calendar .calendar-body .calendar-W tbody td {
  width: 14.28%;
  height: 36px;
}
.calendar .calendar-body .calendar-D .prev-month,
.calendar .calendar-body .calendar-W .prev-month,
.calendar .calendar-body .calendar-D .next-month,
.calendar .calendar-body .calendar-W .next-month {
  color: #888;
}
.calendar .calendar-body .calendar-D .calendar-combox-year .calendar-combox-selected,
.calendar .calendar-body .calendar-W .calendar-combox-year .calendar-combox-selected {
  border-right: 1px solid #ddd;
}
.calendar .calendar-body .calendar-D .calendar-combox-year .calendar-combox-options,
.calendar .calendar-body .calendar-W .calendar-combox-year .calendar-combox-options {
  border-left: 0;
}
.calendar .calendar-body .calendar-D .calendar-combox-month .calendar-combox-options,
.calendar .calendar-body .calendar-W .calendar-combox-month .calendar-combox-options {
  box-sizing: content-box;
  margin-left: -1px;
  border-right: 0;
}
.calendar .calendar-body .calendar-W tbody td {
  width: 100%;
}
.calendar .calendar-body .calendar-W .week-day {
  float: left;
  width: 14.28%;
  height: 36px;
  text-align: center;
  line-height: 36px;
}
.calendar .calendar-body .calendar-M tbody td {
  width: 33.33%;
  height: 54px;
}
.calendar .calendar-body .calendar-M .calendar-combox-options {
  border-left: 0;
  border-right: 0;
}
.calendar .calendar-body .calendar-Q .season-cell {
  width: 50%;
  height: 108px;
}
.calendar .calendar-body .calendar-year .year-cell {
  width: 33.33%;
  height: 54px;
}
.calendar .calendar-body .calendar-week-head td {
  height: 36px;
  color: #888;
}
.calendar .calendar-foot {
  padding: 10px;
  overflow: hidden;
  background: #e7ecf1;
  border-top: 1px solid #ddd;
}
.calendar .calendar-foot .calendar-range-symbol {
  float: left;
  height: 28px;
  padding: 0 3px;
  font-size: 12px;
  line-height: 28px;
  color: #333;
}
.calendar .calendar-foot input[type=text] {
  float: left;
  width: 80px;
  height: 28px;
  line-height: 28px;
  font-size: 13px;
  text-align: center;
  border: 1px solid #ddd;
  color: #333;
  outline: none;
}
.calendar .calendar-foot .calendar-btn-ok,
.calendar .calendar-foot .calendar-btn-cancel {
  float: right;
  width: 60px;
  height: 28px;
  margin-left: 2px;
  outline: none;
  border: 1px solid #09c;
  font-size: 13px;
  cursor: pointer;
}
.calendar .calendar-foot .calendar-btn-ok {
  border: 1px solid #09c;
  color: #fff;
  background: #09c;
}
.calendar .calendar-foot .calendar-btn-ok:hover {
  background: #0188b5;
}
.calendar .calendar-foot .calendar-btn-cancel {
  margin-left: 30px;
  border: 1px solid #09c;
  color: #0188b5;
  background: #fff;
}
.calendar .calendar-foot .calendar-btn-cancel:hover {
  background: #ccebf5;
}
.calendar-combox {
  position: relative;
  float: left;
}
.calendar-combox.calendar-combox-expanded .calendar-combox-options {
  display: block;
}
.calendar-combox .calendar-combox-selected {
  position: relative;
  width: 100%;
  height: 36px;
  line-height: 36px;
  text-align: center;
  color: #333;
  border-bottom: 1px solid #ddd;
  cursor: pointer;
}
.calendar-combox .calendar-combox-selected:after {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 8px;
  vertical-align: middle;
  border-top: 5px solid #09c;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  content: '';
}
.calendar-combox .calendar-combox-options {
  position: absolute;
  top: 35px;
  left: 0;
  display: none;
  width: 100%;
  max-height: 206px;
  overflow: auto;
  margin: 0;
  padding: 0;
  border: 1px solid #ddd;
  background: #fff;
  z-index: 9;
  -webkit-box-shadow: 0 4px 4px rgba(0,0,0,0.1);
  -moz-box-shadow: 0 4px 4px rgba(0,0,0,0.1);
  -ms-box-shadow: 0 4px 4px rgba(0,0,0,0.1);
  box-shadow: 0 4px 4px rgba(0,0,0,0.1);
}
.calendar-combox .calendar-combox-options li {
  float: left;
  width: 50%;
  height: 34px;
  line-height: 34px;
  color: #666;
  font-size: 14px;
  text-align: center;
  list-style: none;
  cursor: pointer;
}
.calendar-combox .calendar-combox-options li:hover {
  background: #eee;
}
.calendar-combox .calendar-combox-options li.combox-option-selected {
  color: #333;
  background: #ccebf5;
}
/* 树选择插件 */
.tree {
  overflow: hidden;
  user-select: none;
  -webkit-user-select: none;
}
.tree * {
  box-sizing: border-box;
}
.tree ul,
.tree li {
  padding: 0;
  margin: 0;
  list-style: none;
}
.tree .tree-left,
.tree .tree-right {
  float: left;
  width: 360px;
}
.tree .tree-right {
  margin-left: 20px;
}
.tree .tree-area-title {
  padding-bottom: 5px;
  font-weight: bold;
  color: #676f75;
}
.tree .tree-wrap,
.tree .tree-node-selected {
  width: 100%;
  height: 400px;
  border: 1px solid #d5dce2;
  overflow: auto;
}
.tree .tree-wrap {
  padding: 10px;
  color: #888;
}
.tree .tree-node-selected .tree-node-selected-item {
  height: 36px;
  line-height: 35px;
  padding-left: 10px;
  color: #09c;
  border-bottom: 1px solid #e7ecf1;
}
.tree .tree-node-selected .tree-node-selected-item .icon {
  margin-right: 5px;
}
.tree .tree-node {
  position: relative;
}
.tree .tree-node > .tree-nodes {
  padding-left: 30px;
  content: '';
}
.tree .tree-node:not(:last-of-type):before {
  position: absolute;
  top: 15px;
  left: -23px;
  z-index: 1;
  height: 100%;
  border-right: 1px dashed #ddd;
  content: '';
}
.tree .tree-node-info {
  position: relative;
  display: block;
  height: 30px;
  line-height: 30px;
}
.tree .tree-node-info:before {
  position: absolute;
  top: 15px;
  left: -22px;
  width: 22px;
  z-index: 1;
  border-top: 1px dashed #ddd;
  content: '';
}
.tree .tree-node-info:not(.tree-leaf):after {
  position: absolute;
  top: 23px;
  left: 7px;
  height: 22px;
  z-index: 1;
  border-right: 1px dashed #ddd;
  content: '';
}
.tree .icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  cursor: pointer;
  vertical-align: -3px;
}
.tree .icon_expand {
  position: relative;
  z-index: 2;
  background: #fff url("../img/icon_expand.png") no-repeat;
}
.tree .icon_collapse {
  position: relative;
  z-index: 2;
  background: #fff url("../img/icon_collapse.png") no-repeat;
}
.tree .icon-place {
  background: #fff url("../img/icon_place.png") no-repeat;
}
.tree .icon-store {
  background: #fff url("../img/icon_store.png") no-repeat;
}
.tree .icon_checkbox {
  margin-right: 5px;
  margin-left: 2px;
  background: url("../img/icon_checkbox.png") no-repeat;
}
.tree .icon-delete {
  float: right;
  margin-right: 10px;
  height: 35px;
  cursor: pointer;
  background: url("../img/icon_delete.png") no-repeat center center;
}
.tree input[type=checkbox]:checked + .icon_checkbox {
  background: url("../img/icon_checkbox_checked.png") no-repeat;
}
/* 表格插件 */
.table {
  width: 100%;
  font-size: 13px;
  border: 1px solid #bdc6cf;
  -webkit-box-shadow: #bdc6cf 0 0px 3px;
  -moz-box-shadow: #bdc6cf 0 0px 3px;
  -ms-box-shadow: #bdc6cf 0 0px 3px;
  box-shadow: #bdc6cf 0 0px 3px;
}
.table table {
  width: 100%;
  border-spacing: 0;
}
.table table td {
  margin: 0;
  padding: 0;
  height: 40px;
}
.table table thead td {
  border-bottom: 1px solid #bdc6cf;
  background: -webkit-linear-gradient(top, #fff 0%, #f3f5f7 100%);
  background: -moz-linear-gradient(top, #fff 0%, #f3f5f7 100%);
  background: -ms-linear-gradient(top, #fff 0%, #f3f5f7 100%);
  background: linear-gradient(top, #fff 0%, #f3f5f7 100%);
}
.table table thead th {
  height: 40px;
  font-weight: normal;
  color: #a0a8ae;
  background: #f8fafc;
  border-bottom: 1px solid #e7ecf1;
}
.table table thead .table-sort {
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-left: 2px;
  vertical-align: -3px;
  cursor: pointer;
  background: url("../img/icon_sort.png");
}
.table table thead .head {
  width: 100%;
}
.table table tbody td {
  color: #a0a8ae;
  text-align: center;
  border-bottom: 1px solid #e7ecf1;
}
.table table tbody tr:last-of-type td {
  border-bottom: 0;
}
.table table tfoot {
  background: #e7ecf1;
}
.table table tfoot td {
  height: 50px;
  border-top: 1px solid #bdc6cf;
}
.page {
  float: right;
  margin: 0 20px 0 0;
  padding: 0;
  list-style: none;
  border: 1px solid #bdc6cf;
  -webkit-box-shadow: #bdc6cf 0 0 1px;
  -moz-box-shadow: #bdc6cf 0 0 1px;
  -ms-box-shadow: #bdc6cf 0 0 1px;
  box-shadow: #bdc6cf 0 0 1px;
  background: -webkit-linear-gradient(top, #fff 0%, #e0e4e8 100%);
  background: -moz-linear-gradient(top, #fff 0%, #e0e4e8 100%);
  background: -ms-linear-gradient(top, #fff 0%, #e0e4e8 100%);
  background: linear-gradient(top, #fff 0%, #e0e4e8 100%);
}
.page li {
  float: left;
  width: 18px;
  height: 18px;
  line-height: 18px;
  margin-left: -1px;
  padding: 4px;
  text-align: center;
  border-left: 1px solid #bdc6cf;
  font-size: 13px;
  color: #a0a8ae;
  cursor: pointer;
}
.page li:active,
.page li.active {
  color: #676f75;
  background-color: #fff;
  cursor: default;
  -webkit-box-shadow: inset #bdc6cf 0 1px 3px;
  -moz-box-shadow: inset #bdc6cf 0 1px 3px;
  -ms-box-shadow: inset #bdc6cf 0 1px 3px;
  box-shadow: inset #bdc6cf 0 1px 3px;
}
.page .page-first {
  background: url(../img/page_first.png) no-repeat center center;
}
.page .page-prev {
  background: url(../img/page_prev.png) no-repeat center center;
}
.page .page-next {
  background: url(../img/page_next.png) no-repeat center center;
}
.page .page-last {
  background: url(../img/page_last.png) no-repeat center center;
}
.mark-camera {
  background-image: url("../img/mark_camera.png");
}
.mark-model {
  background-image: url("../img/mark_model.png");
}
.mark-cabinet {
  background-image: url("../img/mark_cabinet.png");
}
.mark {
  position: relative;
  display: table;
  border: 1px solid #f40;
}
.mark.marking {
  cursor: crosshair;
}
.mark.marking img {
  opacity: 0.3;
}
.mark img {
  display: block;
}
.mark .map-mark {
  position: absolute;
  top: 0;
  left: 0;
  width: 8px;
  height: 8px;
  z-index: 2;
  border-radius: 4px;
}
.mark .map-camera {
  background-color: #33475f;
}
.mark .map-model {
  background-color: #9d55b8;
}
.mark .map-cabinet {
  background-color: #ea8010;
}
.marking .h-line,
.marking .v-line {
  position: absolute;
  top: 0;
  right: 0;
  content: '';
  z-index: 100;
  background: #f40;
}
.marking .h-line {
  width: 100%;
  height: 1px;
}
.marking .v-line {
  width: 1px;
  height: 100%;
}
.mark-toolbar {
  position: fixed;
  right: 0;
  top: 0;
  width: 250px;
  height: 100%;
  padding: 10px;
  background: #e7ecf1;
  box-sizing: border-box;
  border-left: 1px solid #bdc6cf;
  -webkit-box-shadow: #bdc6cf 0 0 1px;
  -moz-box-shadow: #bdc6cf 0 0 1px;
  -ms-box-shadow: #bdc6cf 0 0 1px;
  box-shadow: #bdc6cf 0 0 1px;
}
.mark-toolbar .mark-toolbox {
  margin-bottom: 20px;
}
.mark-toolbar .mark-toolbox .mark-toolbox-head {
  margin-bottom: 5px;
  color: #4b545a;
}
.mark-toolbar .mark-items {
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
  overflow: hidden;
}
.mark-toolbar .mark-items .mark-item {
  float: left;
  width: 32px;
  height: 32px;
  padding: 5px;
  margin-right: 5px;
  background-color: #fff;
  background-repeat: no-repeat;
  background-position: center center;
  border: 1px solid #bdc6cf;
}
.mark-toolbar .mark-pos dl {
  margin: 5px 0;
  font-size: 12px;
  overflow: hidden;
}
.mark-toolbar .mark-pos dl dt,
.mark-toolbar .mark-pos dl dd {
  float: left;
  height: 24px;
  line-height: 24px;
  margin: 0;
}
.mark-toolbar .mark-pos dl dt {
  color: #4b545a;
  margin-right: 10px;
}
.mark-toolbar .mark-pos dl dd {
  width: 60px;
  margin-right: 3px;
  text-align: center;
  background: #fff;
}
.mark-toolbar .marked-items {
  margin: 0;
  padding: 0;
  list-style: none;
}
.mark-toolbar .marked-items .marked-item {
  padding: 5px 10px;
  margin-bottom: 5px;
  height: 32px;
  line-height: 32px;
  color: #777;
  font-size: 12px;
  background: #fff;
}
.mark-toolbar .marked-items .marked-item .marked-icon {
  float: left;
  width: 32px;
  height: 32px;
  margin-right: 10px;
  vertical-align: middle;
  content: '';
  background-color: #fff;
  background-repeat: no-repeat;
  background-position: center center;
}
.mark-toolbar .marked-items .mark-delete {
  float: right;
  height: 32px;
  font-size: 24px;
  cursor: pointer;
}
.mark-toolbar .marked-items .mark-delete:hover {
  color: #f40;
}
